package com.nfc.lock.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nfc.lock.dto.request.LoginRequest;
import com.nfc.lock.dto.request.UserAddRequest;
import com.nfc.lock.dto.response.LoginResponse;
import com.nfc.lock.dto.response.UserInfoVO;
import com.nfc.lock.entity.User;

/**
 * 用户Service接口
 */
public interface IUserService extends IService<User> {

    /**
     * 用户登录
     */
    LoginResponse login(LoginRequest request);

    /**
     * 获取当前用户信息
     */
    UserInfoVO getCurrentUserInfo();

    /**
     * 分页查询用户列表
     */
    IPage<UserInfoVO> getUserList(Integer pageNum, Integer pageSize, String realName,
                                  Integer roleType, Long regionId);

    /**
     * 新增用户
     */
    void addUser(UserAddRequest request);

    /**
     * 更新用户
     */
    void updateUser(Long userId, UserAddRequest request);

    /**
     * 删除用户
     */
    void deleteUser(Long userId);

    /**
     * 重置密码
     */
    void resetPassword(Long userId, String newPassword);

    /**
     * 检查用户是否有权限操作指定区域
     */
    boolean checkPermission(Long userId, Long targetRegionId);
}
